In natural language understanding, a computer system receives a string of input text and attempts to identify a semantic meaning represented by the input text. In many systems, this can be achieved by parsing the input text into semantic tokens and combining the semantic tokens to form larger tokens until a single token spans the entire text segment.
To construct a semantic parser, the designer of the parser must identify the words and/or semantic tokens that can be represented by a higher level semantic token. For the conversion from words to semantic tokens, this involves identifying the different words that a user could use to express the semantic idea represented by the semantic token.
In some situations, it is difficult or impossible to list all of the possible ways in which a user will express a semantic idea. For example, it is extremely difficult, if possible, to anticipate the ways in which a user will express the subject of a meeting. Because of this, most semantic parsers are underdefined in that they are not able to identify the meaning of possible text inputs from a user. Thus, a semantic parser is needed that is more robust in accepting unpredictable text.